package com.bonc.rms.utils;

import java.util.List;
import java.util.Map;

public interface IESSearchUtil {

	/**
	 * 通过关键字查询
	 * @param property 字段名
	 * @param keyword	关键字
	 * @param pageSize 页面大小
	 * @param pageIndex 页数(从0开始计数)
	 * @return
	 */
	public List<Map<String, Object>> getPageListByKeyword(String property,
			String keyword, int pageSize, int pageIndex);
	
	/**
	 * 通过id查询
	 * @param id
	 * @return
	 */
	public Map<String, Object> getPageListById(String id);

	/**
	 * 通过传入的map查询条件查询
	 * @param map 需要查询的键值对
	 * @return
	 */
	public List<Map<String, Object>>  getPageListByMap(Map<String, Object> map, int pageSize,
			int pageIndex);

	/**
	 * 统计总数
	 * @param field 字段名
	 * @return
	 */
	public double countAgg(String field);
	
	/**
	 * 过滤聚合
	 * @param field 过滤字段	
	 * @param value 过滤值
	 * @return
	 */
	public long filterAgg(String field, String value);
	
	/**
	 * term聚合查询
	 * @param field
	 * @return
	 */
	public List<Map<String, Double>> termAgg(String field);
	
	/**
	 * range范围聚合
	 * @param field
	 * @param to
	 * @param from
	 * @return
	 */
	public Map<String, Long> rangeAgg(String field, float to, float from);

	/**
	 * 通过list查找
	 * @param list
	 * @param pageSize
	 * @param pageIndex
	 * @return
	 */
	public List<Map<String, Object>> getPageListByList(List<String> list, int pageSize,
			int pageIndex);
}
